export * from './string.ts'
import i18n from '@src/locales'
import moment from 'moment'

export const timeFormatTemp = {
  date: 'YYYY-MM-DD',
  dateTime: 'YYYY-MM-DD HH:mm',
  fullTime: 'YYYY-MM-DD HH:mm:ss',
  time: 'HH:mm',
}

/** 格式化时间 */
export function formatDate(originDate, format = 'YYYY-MM-DD HH:mm:ss', locale = i18n.locale){
  if (!originDate) return originDate

  // TODO 这种兼容方式有缺陷，最好在接收后端返回数据处进行兼容处理
  format = format.replace('yyyy', 'YYYY').replace('-dd', '-DD') // 兼容旧版模板 

  const date = moment(originDate)

  if(!date.isValid()) {
    // 无法解析的时间，直接返回源数据
    console.warn('date is invalid：', originDate)
    return originDate
  }

  return date.locale(locale).format(timeFormatTemp[format] || format)
}

// 获取某一天的00:00:00的时间戳  
export function getTimestampAtStartOfDay(daysFromNow = 0) {  
  let date = new Date();  
  date.setDate(date.getDate() + daysFromNow);  
  date.setHours(0, 0, 0, 0);  
  return date.getTime();  
}  
  
// 获取某一天的23:59:59的时间戳  
export function getTimestampAtEndOfDay(daysFromNow = 0) {  
  let date = new Date();  
  date.setDate(date.getDate() + daysFromNow);  
  date.setHours(23, 59, 59, 0);  
  return date.getTime();  
} 